package com.tbit.uqbike.service.rpcservice;

import com.tbit.uqbike.object.pojo.MachineStatus;
import com.tbit.uqbike.object.pojo.MachineStatusFlag;
import com.tbit.uqbike.object.value.LoginInfo;
import com.tbit.uqbike.object.view.MachineInfo;

import java.util.List;

/**
 * 设备最后状态
 *
 * @author Leon
 * 2019年11月11日 上午10:59:53
 */
public interface MachineStatusService {

    /**
     * 根据设备id查询
     *
     * @param machineId
     * @return
     */
    MachineStatus getByMachineId(Integer machineId);

    /**
     * 根据设备编号查询
     *
     * @param machineNO
     * @return
     */
    MachineStatus getByMachineNO(String machineNO);

    /**
     * 根据设备id批量查询
     *
     * @param machineIds
     * @return
     */
    List<MachineStatus> getByMachineIdBatch(List<Integer> machineIds);

    /**
     * 根据代理商id查询
     *
     * @param accountId
     * @return
     */
    List<MachineStatus> getByAccountId(Integer accountId);

    /**
     * 查询代理商低电量设备
     *
     * @param accountId
     * @param socPercent
     * @return
     */
    List<MachineStatus> getSocByAccountId(Integer accountId, Integer socPercent);

    /**
     * 获取状态和最后借出信息
     *
     * @param accountId
     * @param lastBorrowTime
     * @return
     */
    List<MachineStatusFlag> getUnUseByAccountId(Integer accountId, String lastBorrowTime);


    /**
     * 获取故障车辆
     *
     * @param accountId
     * @return
     */
    List<MachineStatus> getFaultByAccountId(Integer accountId);

    /**
     * @param info
     * @param machineId
     * @param mapType
     * @return
     */
    MachineInfo getMachineInfo(LoginInfo info, Integer machineId, Integer mapType);
}  